41 research outputs found
Using Modularity Metrics to assist Move Method Refactoring of Large System
For large software systems, refactoring activities can be a challenging task,
since for keeping component complexity under control the overall architecture
as well as many details of each component have to be considered. Product
metrics are therefore often used to quantify several parameters related to the
modularity of a software system. This paper devises an approach for
automatically suggesting refactoring opportunities on large software systems.
We show that by assessing metrics for all components, move methods refactoring
an be suggested in such a way to improve modularity of several components at
once, without hindering any other. However, computing metrics for large
software systems, comprising thousands of classes or more, can be a time
consuming task when performed on a single CPU. For this, we propose a solution
that computes metrics by resorting to GPU, hence greatly shortening computation
time. Thanks to our approach precise knowledge on several properties of the
system can be continuously gathered while the system evolves, hence assisting
developers to quickly assess several solutions for reducing modularity issues
An agent-driven semantical identifier using radial basis neural networks and reinforcement learning
Due to the huge availability of documents in digital form, and the deception
possibility raise bound to the essence of digital documents and the way they
are spread, the authorship attribution problem has constantly increased its
relevance. Nowadays, authorship attribution,for both information retrieval and
analysis, has gained great importance in the context of security, trust and
copyright preservation. This work proposes an innovative multi-agent driven
machine learning technique that has been developed for authorship attribution.
By means of a preprocessing for word-grouping and time-period related analysis
of the common lexicon, we determine a bias reference level for the recurrence
frequency of the words within analysed texts, and then train a Radial Basis
Neural Networks (RBPNN)-based classifier to identify the correct author. The
main advantage of the proposed approach lies in the generality of the semantic
analysis, which can be applied to different contexts and lexical domains,
without requiring any modification. Moreover, the proposed system is able to
incorporate an external input, meant to tune the classifier, and then
self-adjust by means of continuous learning reinforcement.Comment: Published on: Proceedings of the XV Workshop "Dagli Oggetti agli
Agenti" (WOA 2014), Catania, Italy, Sepember. 25-26, 201
Improving files availability for BitTorrent using a diffusion model
The BitTorrent mechanism effectively spreads file fragments by copying the
rarest fragments first. We propose to apply a mathematical model for the
diffusion of fragments on a P2P in order to take into account both the effects
of peer distances and the changing availability of peers while time goes on.
Moreover, we manage to provide a forecast on the availability of a torrent
thanks to a neural network that models the behaviour of peers on the P2P
system. The combination of the mathematical model and the neural network
provides a solution for choosing file fragments that need to be copied first,
in order to ensure their continuous availability, counteracting possible
disconnections by some peers
Is swarm intelligence able to create mazes?
In this paper, the idea of applying Computational Intelligence in the process
of creation board games, in particular mazes, is presented. For two different
algorithms the proposed idea has been examined. The results of the experiments
are shown and discussed to present advantages and disadvantages
An automated classification system for urban areas matching the 'city country fingers' pattern: the cases of Kamakura (Japan) and Acireale (Italy) cities
AbstractThe uncontrolled expansion of urban areas is one of the main factors that reduce the liveability of cities. In recent years, to contrast urban sprawl, several nations have promoted policies aimed at developing urban green spaces. The importance of green oases within cities had already been highlighted, in 1977, by the architect Christopher Alexander who had developed a series of patterns including 'City Country Fingers' claiming that city development should consider the prolongation of country land in to the urban area.In several cities, especially in Japan, it is possible to recognize the imprint of urban development based on country fingers. This term refers to extensive urban intersections of agricultural land or wooded hills which, from the peripheral areas, penetrate the city. Inside them, there are urban windows, called city fingers, whose development direction is opposite to those of the country fingers. To recognize and analyze, in an automated way, these particular structures, a Python-based application was created. Starting from the original high-resolution image of Google Earth, a complete analysis was performed, labeling and delimiting urban and vegetational areas and extrapolating the main geometric parameters of the country and city fingers. The finalization of the results obtained was carried out through a classification model whose criteria were based on Alexander's pattern.Thanks to this classification scheme, the distinction between Active Green Areas (country fingers) and Passive Green Areas (gardens and public parks) have been revealed for the analyzed cities. The tests performed showed almost ideal conditions for the city of Kamakura and a limited match for the urban area of Acireale. The proposed method is suitable for fields of application that require a qualitative and quantitative determination of the vegetation cover present within the city, an essential condition for correct territorial planning
Searching Design Patterns Fast by Using Tree Traversals
Large software systems need to be modified to remain useful. Changes can be more easily performed when their design has been carefully documented. This paper presents an approach to quickly find design patterns that have been implemented into a software system. The devised solution greatly reduces the performed checks by organising the search for a design pattern as tree traversals, where candidate classes are carefully positioned into trees. By automatically tagging classes with design pattern roles we make it easier for developers to reason with large software systems. Our approach can provide documentation that lets developers understand the role each class is playing, assess the quality of the code, have assistance for refactoring and enhancing the functionalities of the software system.
REDUNET: reducing test suites by integrating set cover and network-based optimization
Abstract
The availability of effective test suites is critical for the development and maintenance of reliable software systems. To increase test effectiveness, software developers tend to employ larger and larger test suites. The recent availability of software tools for automatic test generation makes building large test suites affordable, therefore contributing to accelerating this trend. However, large test suites, though more effective, are resources and time consuming and therefore cannot be executed frequently. Reducing them without decreasing code coverage is a needed compromise between efficiency and effectiveness of the test, hence enabling a more regular check of the software under development. We propose a novel approach, namely REDUNET, to reduce a test suite while keeping the same code coverage. We integrate this approach in a complete framework for the automatic generation of efficient and effective test suites, which includes test suite generation, code coverage analysis, and test suite reduction. Our approach formulates the test suite reduction as a set cover problem and applies integer linear programming and a network-based optimisation, which takes advantage of the properties of the control flow graph. We find the optimal set of test cases that keeps the same code coverage in fractions of seconds on real software projects and test suites generated automatically by Randoop. The results on ten real software systems show that the proposed approach finds the optimal minimisation and achieves up to 90% reduction and more than 50% reduction on all systems under analysis. On the largest project our reduction algorithm performs more than three times faster than both integer linear programming alone and the state-of-the-art heuristic Harrold Gupta Soffa
Real-Time Cloud-based Game Management System via Cuckoo Search Algorithm
This paper analyses the idea of applying Swarm Intelligence in the process of managing the entire 2D board game in a real-time environment. For the proposed solution Game Management System is used as a cloud resource with a dedicated intelligent control agent. The described approach has been analysed on the basis of board games like mazes. The model and the control algorithm of the system is described and examined. The results of the experiments are presented and discussed to show possible advantages and disadvantages of the proposed method.
Simplified firefly algorithm for 2D image key-points search
In order to identify an object, human eyes firstly search the field of view
for points or areas which have particular properties. These properties are used
to recognise an image or an object. Then this process could be taken as a model
to develop computer algorithms for images identification. This paper proposes
the idea of applying the simplified firefly algorithm to search for key-areas
in 2D images. For a set of input test images the proposed version of firefly
algorithm has been examined. Research results are presented and discussed to
show the efficiency of this evolutionary computation method.Comment: Published version on: 2014 IEEE Symposium on Computational
Intelligence for Human-like Intelligenc
A Software Architecture Assisting Workflow Executions on Cloud Resources
An enterprise providing services handled by means of workflows needs to monitor and control their execution, gather usage data, determine priorities, and properly use computing cloud-related resources. This paper proposes a software architecture that connects unaware services to components handling workflow monitoring and management concerns. Moreover, the provided components enhance dependability of services while letting developers focus only on the business logic